-
Notifications
You must be signed in to change notification settings - Fork 41
feat: Allow Node Operators to Self Register Validators #301
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
…arding validator creation status
…dator registration flow
…ariables and improve constant address usage
…bility and validator key generation
…checks and Comment out deprecated LiquidityPool initialization calls in TestSetup
seongyun-ko
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's create a separate PR for the changes on LiquidityPool. since it is not related with the current feature scope.
…ingManager and corresponding tests in ValidatorKeyGenTest
Sherlock AI FindingsThe automated tool completed its analysis of the codebase and found no potential security issues. Next Steps: No immediate actions are required. Continue monitoring the codebase with future scans. Full report available at: https://ai.sherlock.xyz/runs/240d3d89-cc9c-4be4-bfd3-c024d7111dd4 |
Note
Introduce a two-step validator flow with pre-registration and role-gated creation, track validator creation status, add invalidation, and update interfaces/tests.
src/LiquidityPool.sol):LIQUIDITY_POOL_VALIDATOR_CREATOR_ROLEand newbatchCreateBeaconValidators(...)to send 1 ETH per validator (role-gated) while accounting LP balances.batchRegister(...)(pre-registration) before creation and funding.src/StakingManager.sol):validatorCreationStatusmapping and emitValidatorCreationStatusUpdated.registerBeaconValidators(...)to pre-register validators (checks bid active, deposit root, node validity) and markREGISTERED.createBeaconValidators(...)to onlyREGISTEREDentries, then link, deposit 1 ETH, markCONFIRMED, and update auction info.invalidateRegisteredBeaconValidator(...)(roleSTAKING_MANAGER_VALIDATOR_INVALIDATOR_ROLE) to markINVALIDATED.IStakingManager: addValidatorCreationStatusenum, new fnsregisterBeaconValidators(...),invalidateRegisteredBeaconValidator(...), eventValidatorCreationStatusUpdated, and errorInvalidValidatorCreationStatus.ILiquidityPool: declarebatchCreateBeaconValidators(...).test/fork-tests/validator-key-gen.t.solcovering pre-registration, creation, invalidation, role gating, pause checks, accounting, and multi-validator flows.Written by Cursor Bugbot for commit 098cf09. This will update automatically on new commits. Configure here.